package javaClassExercise.compare;

/**
 * Created by lomo on 2017.
 * Java装箱、拆箱：
 * 装箱：将基本8种数据类型转为包装类型；
 * 拆箱：将包装类型转为基本数据类型
 * 整数比较 == 与 equals区别：== 比较的是地址，equals比较的是内容/值; equals必须使用包装类(基本的int 、short、float、double、long、byte、boolean、char不能使用equals)！
 */
public class intCompare {
    public static void main(String ... args) {
        int a = 10;
        int b = 10;
        System.out.println(a == b); // true

        Integer c = 10;
        Integer d = 10;
        System.out.println(c == d); // true
        System.out.println(c.equals(d)); // true

        /**
         * 对-128 ~ 127 之间的整数会进行内存缓存，大于127或小于-128之后的整数都会new一个对象，所以使用 == 结果为FALSE
         */
//        Integer e = -128;
//        Integer f = -128;
//        System.out.println(e == f); // true
//        System.out.println(e.equals(f)); //true
//        Integer e = -129;
//        Integer f = -129;
//        System.out.println(e == f); // false
//        System.out.println(e.equals(f)); //true
//        Integer e = 128;
//        Integer f = 128;
//        System.out.println(e == f); // false
//        System.out.println(e.equals(f)); //true
        Integer e = 127;
        Integer f = 127;
        System.out.println(e == f); // true
        System.out.println(e.equals(f)); //true

    }
}
